The core of the system

The problems described in sections [*] and [*] can be solved using the babel system of document-style options.

The core of this system currently performs three functions.

  1. It defines a user interface for switching between languages;

  2. It contains code to dynamically load several sets of hyphenation patterns;

  3. It `repairs' the document styles provided in the standard distribution of LATEX.

Obviously part [*] can only be used while running iniTEX to create a new format, whereas part [*] should not be read by iniTEX. Part [*] should even disappear when LATEX version 3.0 arrives, as the style files supplied with the new LATEX will no longer be language specific. Part [*] can either be loaded into the format with multiple hyphenation patterns, or it can be read while processing a document.

For this reason the core of the babel system is stored in two separate files, babel.switch, containing parts [*] and [*], and babel.sty which contains part [*]. The file babel.sty will instruct LATEX to load babel.switch if necessary, the file babel.switch checks the format to see if hyphenation patterns can be loaded.